package 集合学习.jihe_Set.Setjihewanzheng;

import java.util.*;

/**
 *特点是无序，唯一的
 * 采用的是Hashtable哈希表存储结构
 * 优点是添加速度快，查询和删除速度也快
 * 缺点是无序
 *相比Collection没有添加任何的方法
 * 没有get(i);remove(i)等方法
 * LinkedHashSet是有序的，但是速度就比HashSet的速度就慢一点了
 *
 * */

public class Hash_SetTree_SetLinkedHash_Set {
    public static void main(String[] args) {


        //创建Set集合对象
        Set<String> set=new HashSet();//无序的
        Set<String> set1=new LinkedHashSet();//有序的，为添加的顺序
        Set<String> set2=new TreeSet<>();//有序的，为自然地顺序
        set.add("javaee");
        set.add("web");
        set.add("sql");
        set.add("javaee");
        set.add("linux");
        set1.add("javaee");
        set1.add("web");
        set1.add("sql");
        set1.add("javaee");
        set1.add("linux");
        set2.add("javaee");
        set2.add("web");
        set2.add("sql");
        set2.add("javaee");
        set2.add("linux");

        //遍历元素
        System.out.println(set.size());
        System.out.println(set);
        System.out.println(set1);
        System.out.println(set2);

        //方法一：
        for(String e:set)
            System.out.println(e);

        //方法二：
        Iterator<String> it =set1.iterator() ;
        while(it.hasNext()) {
            String e = it.next();
            System.out.println("----->"+e);
        }

        //方法三：
        set2.forEach((e)-> System.out.println(e+"!"));

    }

}
